home *** CD-ROM | disk | FTP | other *** search
Text File | 1993-07-11 | 1.5 KB | 91 lines | [TEXT/MPS ] |
- #
- # zgrep.mac -- znew for MPW
- #
- # written by Anthony C. Ard, 1993
- #
- # this script requires grep, fgrep, or egrep
- #
- # zgrep -- a wrapper around a grep program that decompresses files as needed
- # Adapted from a version sent by Charles Levert <charles@comm.polymtl.ca>
-
- set exit 0
- set prog `echo {0} | sed 's|.*/||'`
-
- if "{prog}" =~ /≈egrep/
- set grep "egrep"
- else if "{prog}" =~ /≈fgrep/
- set grep "fgrep"
- else
- set grep "grep"
- end
-
- unset A
- set fileno 0
- set pat ""
-
- for i in {Parameters}
- if "{1}" == "-e" || "{1}" == "-f"
- set opt "{opt} {1}"
- shift 1
- set pat "{1}"
- if "{grep}" == "grep"
- set grep "egrep"
- end
- else if "{1}" =~ /-≈/
- set opt "{opt} {1}"
- else
- if "{pat}" == ""
- set pat "{1}"
- else
- set fileno `evaluate {fileno} + 1`
- set A "{A} {1}"
- end
- end
- shift 1
- end
-
- if "{pat}" == ""
- echo "grep through gzip files"
- echo "usage: {prog} [grep_options] pattern [files]"
- set exit 0
- exit 1
- end
-
- set list 0
- set silent 0
-
- if "{opt}" != ""
- set op `echo "{opt}" | sed -e 's/ //g' -e 's/-//g'`
-
- if "{op}" =~ /≈l≈/
- set list 1
- else if "{op}" =~ /≈h≈/
- set silent 1
- end
- end
-
- if {fileno} == 0
- gzip -cdfq | {grep} {opt} "{pat}"
- set res {Status}
- set exit 1
- exit {res}
- end
-
- set res 0
-
- for i in {A}
- if {list}
- gzip -cdfq "{i}" | {grep} {opt} "{pat}" >Dev:Null && echo {i}
- set res {Status}
- else if {#} == 1 || {silent} == 1
- gzip -cdfq "{i}" | {grep} {opt} "{pat}"
- set res {Status}
- else
- gzip -cdfq "{i}" | {grep} {opt} "{pat}" | sed "s|^|{i}; |"
- set res {Status}
- end
- end
-
- set exit 1
- exit {res}
-